package com.ayuer.chapter01;

import java.util.Arrays;

public class BubbleSortDemo {

    /**
     * right代表未排序的右边界
     *
     * @param arr
     * @param right
     */
    public static void bubble(int[] arr, int right) {

        if (right == 0) {
            //说明已经没有元素可以排序了
            return;
        }
        int index = 0;
        //{5,1,2,3,4}
        for (int i = 0; i < right; i++) {
            //进行交换
            if (arr[i] > arr[i + 1]) {
                int tmp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = tmp;
                index = i;
            }
        }
        //递归,可以使用
        bubble(arr, index);
    }

    public static void bubbleSort(int[] arr) {
        bubble(arr, arr.length - 1);
    }


    public static void main(String[] args) {
        /**
         * 使用递归实现
         */
        int[] arr = {9, 1, 2, 3, 2, 5, 0};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}
